<!DOCTYPE html>
<html lang="zh-cn">
    <head>
        <meta charset="UTF-8"/>
        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
        <title>elementUI表格排序</title>
        <link rel="stylesheet" href="elementUI/theme-default/index.css" /> 
    </head>
    <body>
        <script src="http://unpkg.com/vue/dist/vue.js"></script>
        <script src="http://unpkg.com/element-ui@1.3.5/lib/index.js"></script>
        <div id="app">
          <template>
            <el-table
              :data="tableData6"
              border
              show-summary
              style="width: 100%">
              <el-table-column
                prop="id"
                label="ID"
                width="180">
              </el-table-column>
              <el-table-column
                prop="name"
                label="姓名">
              </el-table-column>
              <el-table-column
                prop="amount1"
                sortable
                label="数值 1">
              </el-table-column>
              <el-table-column
                prop="amount2"
                sortable
                label="数值 2">
              </el-table-column>
              <el-table-column
                prop="amount3"
                sortable
                label="数值 3">
              </el-table-column>
            </el-table>
            
            <el-table
              :data="tableData6"
              border
              height="200"
              :summary-method="getSummaries"
              show-summary
              style="width: 100%; margin-top: 20px">
              <el-table-column
                prop="id"
                label="ID"
                width="180">
              </el-table-column>
              <el-table-column
                prop="name"
                label="姓名">
              </el-table-column>
              <el-table-column
                prop="amount1"
                label="数值 1（元）">
              </el-table-column>
              <el-table-column
                prop="amount2"
                label="数值 2（元）">
              </el-table-column>
              <el-table-column
                prop="amount3"
                label="数值 3（元）">
              </el-table-column>
            </el-table>
          </template>
        </div>

        <script>
          new Vue({
            el:'#app',
            data() {
              return {
                tableData6: [{
                  id: '12987122',
                  name: '王小虎',
                  amount1: '234',
                  amount2: '3.2',
                  amount3: 10
                }, {
                  id: '12987123',
                  name: '王小虎',
                  amount1: '165',
                  amount2: '4.43',
                  amount3: 12
                }, {
                  id: '12987124',
                  name: '王小虎',
                  amount1: '324',
                  amount2: '1.9',
                  amount3: 9
                }, {
                  id: '12987125',
                  name: '王小虎',
                  amount1: '621',
                  amount2: '2.2',
                  amount3: 17
                }, {
                  id: '12987126',
                  name: '王小虎',
                  amount1: '539',
                  amount2: '4.1',
                  amount3: 15
                }]
              };
            },
            methods: {
              getSummaries(param) {
                const { columns, data } = param;
                const sums = [];
                columns.forEach((column, index) => {
                  if (index === 0) {
                    sums[index] = '总价';
                    return;
                  }
                  const values = data.map(item => Number(item[column.property]));
                  if (!values.every(value => isNaN(value))) {
                    sums[index] = values.reduce((prev, curr) => {
                      const value = Number(curr);
                      if (!isNaN(value)) {
                        return prev + curr;
                      } else {
                        return prev;
                      }
                    }, 0);
                    sums[index] += ' 元';
                  } else {
                    sums[index] = 'N/A';
                  }
                });

                return sums;
              }
            }
          });
        </script>
    </body>
</html>